const http = require('http');
const url = require('url');
var data  = { name: 'BruceLee', password: '123456' };
var fixationData = {'fixa':"我是JSONP的第一种"};

var server = http.createServer();

server.on('request',(req,res)=>{
  
    //两种JSONP方式
    //第一种,前后端约定固定回调函数
    let path = url.parse(req.url);
    console.log(path.pathname);
    if(path.pathname === '/fixation'){
        res.writeHead(200, { 
            'Content-Type': 'application/json;charset=utf-8' 
        });
        res.end("jsonpCallback("+JSON.stringify(fixationData)+")");
    };
    //第二种，动态创建回调函数（根据前端传的参数来拼接，返回参数）
    if(path.pathname === '/async'){
        res.writeHead(200, { 
            'Content-Type': 'application/json;charset=utf-8' 
        });
        // 获取参数的方式
        let arg1 = url.parse(req.url).query;     //1、callback=callBackName
        let arg2 = url.parse(req.url,true).query //2、{callback:callBackName}
        console.log(arg2.callback);
        // 使用call调用，
        res.end( `${arg2.callback}.call(undefined,${JSON.stringify(data)})` );
    }
})
server.listen(7788,()=>{
    console.log('listen 7788');
})